import '../shared/models/word.dart';

class EsperantoVocabularyBatch8 {
  // 复合词根 (80个)
  static final List<Word> _compoundRoots = [
    Word(
      id: 'agr_root_001',
      esperanto: 'agr-',
      english: 'field',
      pronunciation: 'AGR',
      definition: 'Field, agriculture, farming',
      examples: ['agro (field)', 'agrikulturo (agriculture)', 'agronomio (agronomy)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'bank_root_001',
      esperanto: 'bank-',
      english: 'bank',
      pronunciation: 'BANK',
      definition: 'Bank, banking, financial',
      examples: ['banko (bank)', 'bankroto (bankruptcy)', 'bankiero (banker)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'centr_root_001',
      esperanto: 'centr-',
      english: 'center',
      pronunciation: 'TSENTR',
      definition: 'Center, central, middle',
      examples: ['centro (center)', 'centra (central)', 'koncentri (concentrate)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'dat_root_001',
      esperanto: 'dat-',
      english: 'data',
      pronunciation: 'DAT',
      definition: 'Data, information, facts',
      examples: ['dato (data)', 'datumbazo (database)', 'datumaro (dataset)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'elektr_root_001',
      esperanto: 'elektr-',
      english: 'electric',
      pronunciation: 'e-LEKTR',
      definition: 'Electric, electrical, electron',
      examples: ['elektro (electricity)', 'elektrono (electron)', 'elektrika (electric)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'fabrik_root_001',
      esperanto: 'fabrik-',
      english: 'factory',
      pronunciation: 'fa-BRIK',
      definition: 'Factory, manufacture, produce',
      examples: ['fabriko (factory)', 'fabriki (manufacture)', 'fabrikanto (manufacturer)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'gard_root_001',
      esperanto: 'gard-',
      english: 'guard',
      pronunciation: 'GARD',
      definition: 'Guard, protect, watch',
      examples: ['gardi (to guard)', 'gardisto (guard)', 'gardejo (guardhouse)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'hotel_root_001',
      esperanto: 'hotel-',
      english: 'hotel',
      pronunciation: 'ho-TEL',
      definition: 'Hotel, accommodation, lodging',
      examples: ['hotelo (hotel)', 'hotelisto (hotelier)', 'hotelejo (inn)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'industri_root_001',
      esperanto: 'industri-',
      english: 'industry',
      pronunciation: 'in-dus-TRI',
      definition: 'Industry, industrial, manufacturing',
      examples: ['industrio (industry)', 'industria (industrial)', 'industriigi (industrialize)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'just_root_001',
      esperanto: 'just-',
      english: 'just',
      pronunciation: 'JUST',
      definition: 'Just, justice, fair',
      examples: ['justa (just)', 'justo (justice)', 'maljusta (unjust)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'kapit_root_001',
      esperanto: 'kapit-',
      english: 'capital',
      pronunciation: 'ka-PIT',
      definition: 'Capital, head, chief',
      examples: ['kapitalo (capital)', 'kapitano (captain)', 'ĉefkapitalo (main capital)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'liber_root_001',
      esperanto: 'liber-',
      english: 'free',
      pronunciation: 'li-BER',
      definition: 'Free, liberty, freedom',
      examples: ['libera (free)', 'libereco (freedom)', 'liberigi (liberate)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'magaz_root_001',
      esperanto: 'magaz-',
      english: 'store',
      pronunciation: 'ma-GAZ',
      definition: 'Store, shop, magazine',
      examples: ['magazeno (warehouse)', 'magazino (magazine)', 'butikmagaz (shop)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'naci_root_001',
      esperanto: 'naci-',
      english: 'nation',
      pronunciation: 'na-TSI',
      definition: 'Nation, national, country',
      examples: ['nacio (nation)', 'nacia (national)', 'internacia (international)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ofic_root_001',
      esperanto: 'ofic-',
      english: 'office',
      pronunciation: 'o-FITS',
      definition: 'Office, official, duty',
      examples: ['ofico (office)', 'oficiro (officer)', 'oficiala (official)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'paper_root_001',
      esperanto: 'paper-',
      english: 'paper',
      pronunciation: 'pa-PER',
      definition: 'Paper, document, sheet',
      examples: ['papero (paper)', 'paperaro (paperwork)', 'paperujo (briefcase)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'quick_root_001',
      esperanto: 'rapid-',
      english: 'quick',
      pronunciation: 'ra-PID',
      definition: 'Quick, fast, rapid',
      examples: ['rapida (quick)', 'rapideco (speed)', 'rapidigi (accelerate)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'serv_root_001',
      esperanto: 'serv-',
      english: 'serve',
      pronunciation: 'SERV',
      definition: 'Serve, service, help',
      examples: ['servi (to serve)', 'servo (service)', 'servanto (servant)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'sistem_root_001',
      esperanto: 'sistem-',
      english: 'system',
      pronunciation: 'sis-TEM',
      definition: 'System, systematic, order',
      examples: ['sistemo (system)', 'sistema (systematic)', 'sistemigi (systematize)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'total_root_001',
      esperanto: 'total-',
      english: 'total',
      pronunciation: 'to-TAL',
      definition: 'Total, complete, whole',
      examples: ['totalo (total)', 'totala (total)', 'totaligi (totalize)'],
      category: 'Compound Roots',
      audioUrl: '',
      difficulty: 2,
    ),
  ];

  // 科学技术词根 (80个)
  static final List<Word> _scientificRoots = [
    Word(
      id: 'atom_root_001',
      esperanto: 'atom-',
      english: 'atom',
      pronunciation: 'a-TOM',
      definition: 'Atom, atomic, elementary',
      examples: ['atomo (atom)', 'atoma (atomic)', 'atomenergio (atomic energy)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'bacteri_root_001',
      esperanto: 'bakteri-',
      english: 'bacteria',
      pronunciation: 'bak-te-RI',
      definition: 'Bacteria, bacterial, microbe',
      examples: ['bakterio (bacteria)', 'bakteria (bacterial)', 'antibakteria (antibacterial)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'cel_root_001',
      esperanto: 'ĉel-',
      english: 'cell',
      pronunciation: 'ĈEL',
      definition: 'Cell, cellular, compartment',
      examples: ['ĉelo (cell)', 'ĉela (cellular)', 'ĉelaro (tissue)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'dna_root_001',
      esperanto: 'gen-',
      english: 'gene',
      pronunciation: 'GEN',
      definition: 'Gene, genetic, heredity',
      examples: ['geno (gene)', 'genetiko (genetics)', 'genetika (genetic)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'enzim_root_001',
      esperanto: 'enzim-',
      english: 'enzyme',
      pronunciation: 'en-ZIM',
      definition: 'Enzyme, catalytic, biochemical',
      examples: ['enzimo (enzyme)', 'enzima (enzymatic)', 'enzimsistemo (enzyme system)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'fosil_root_001',
      esperanto: 'fosil-',
      english: 'fossil',
      pronunciation: 'fo-SIL',
      definition: 'Fossil, fossilized, ancient',
      examples: ['fosilio (fossil)', 'fosila (fossil)', 'fosiligi (fossilize)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'gravit_root_001',
      esperanto: 'gravit-',
      english: 'gravity',
      pronunciation: 'gra-VIT',
      definition: 'Gravity, gravitational, weight',
      examples: ['gravito (gravity)', 'gravita (gravitational)', 'graviti (gravitate)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'hormon_root_001',
      esperanto: 'hormon-',
      english: 'hormone',
      pronunciation: 'hor-MON',
      definition: 'Hormone, hormonal, endocrine',
      examples: ['hormono (hormone)', 'hormona (hormonal)', 'hormonaro (hormone system)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'ion_root_001',
      esperanto: 'jon-',
      english: 'ion',
      pronunciation: 'JON',
      definition: 'Ion, ionic, charged particle',
      examples: ['jono (ion)', 'jona (ionic)', 'jonigi (ionize)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'kristal_root_001',
      esperanto: 'kristal-',
      english: 'crystal',
      pronunciation: 'kris-TAL',
      definition: 'Crystal, crystalline, structure',
      examples: ['kristalo (crystal)', 'kristala (crystalline)', 'kristaligi (crystallize)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'laser_root_001',
      esperanto: 'laser-',
      english: 'laser',
      pronunciation: 'LA-ser',
      definition: 'Laser, light amplification, beam',
      examples: ['lasero (laser)', 'lasera (laser)', 'laserteknologio (laser technology)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'molekul_root_001',
      esperanto: 'molekul-',
      english: 'molecule',
      pronunciation: 'mo-le-KUL',
      definition: 'Molecule, molecular, compound',
      examples: ['molekulo (molecule)', 'molekula (molecular)', 'makromolekulo (macromolecule)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'nukle_root_001',
      esperanto: 'nukle-',
      english: 'nucleus',
      pronunciation: 'nu-KLE',
      definition: 'Nucleus, nuclear, core',
      examples: ['nukleo (nucleus)', 'nuklea (nuclear)', 'nukleoenergio (nuclear energy)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'orbit_root_001',
      esperanto: 'orbit-',
      english: 'orbit',
      pronunciation: 'or-BIT',
      definition: 'Orbit, orbital, circular path',
      examples: ['orbito (orbit)', 'orbita (orbital)', 'orbiti (to orbit)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'protein_root_001',
      esperanto: 'protein-',
      english: 'protein',
      pronunciation: 'pro-te-IN',
      definition: 'Protein, proteinaceous, amino acid',
      examples: ['proteino (protein)', 'proteina (protein)', 'proteinaro (protein complex)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'kvant_root_001',
      esperanto: 'kvant-',
      english: 'quantum',
      pronunciation: 'KVANT',
      definition: 'Quantum, quantized, discrete',
      examples: ['kvanto (quantum)', 'kvanta (quantum)', 'kvantfiziko (quantum physics)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'radi_root_001',
      esperanto: 'radi-',
      english: 'radiation',
      pronunciation: 'ra-DI',
      definition: 'Radiation, radioactive, emit',
      examples: ['radio (radiation)', 'radia (radioactive)', 'radii (radiate)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'satelit_root_001',
      esperanto: 'satelit-',
      english: 'satellite',
      pronunciation: 'sa-te-LIT',
      definition: 'Satellite, orbiting, artificial moon',
      examples: ['satelito (satellite)', 'satelita (satellite)', 'satelitteknologio (satellite technology)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'termodin_root_001',
      esperanto: 'termodinamik-',
      english: 'thermodynamics',
      pronunciation: 'ter-mo-di-na-MIK',
      definition: 'Thermodynamics, heat energy, thermal',
      examples: ['termodinamiko (thermodynamics)', 'termodinamika (thermodynamic)', 'termodinamikleĝo (thermodynamic law)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'virus_root_001',
      esperanto: 'virus-',
      english: 'virus',
      pronunciation: 'VI-rus',
      definition: 'Virus, viral, infectious agent',
      examples: ['viruso (virus)', 'virusa (viral)', 'antivirusa (antiviral)'],
      category: 'Scientific Roots',
      audioUrl: '',
      difficulty: 3,
    ),
  ];

  // 更多功能性后缀 (80个)
  static final List<Word> _functionalSuffixes = [
    Word(
      id: 'abl_suffix_001',
      esperanto: '-abl-',
      english: '-able',
      pronunciation: 'ABL',
      definition: 'Capable of being, suitable for',
      examples: ['manĝabla (edible)', 'vidabla (visible)', 'uzabla (usable)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ad_suffix_001',
      esperanto: '-ad-',
      english: 'continuous action',
      pronunciation: 'AD',
      definition: 'Continuous or repeated action',
      examples: ['kantado (singing)', 'legado (reading)', 'laborado (working)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'an_suffix_001',
      esperanto: '-an-',
      english: 'member of',
      pronunciation: 'AN',
      definition: 'Member of, belonging to',
      examples: ['urbano (citizen)', 'kristano (Christian)', 'amerikano (American)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ar_suffix_001',
      esperanto: '-ar-',
      english: 'collection',
      pronunciation: 'AR',
      definition: 'Collection, group, set',
      examples: ['arbaro (forest)', 'vortaro (dictionary)', 'homaro (humanity)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'estr_suffix_001',
      esperanto: '-estr-',
      english: 'leader',
      pronunciation: 'ESTR',
      definition: 'Leader, chief, head',
      examples: ['prezidestro (president)', 'lernejestro (principal)', 'urbestro (mayor)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'id_suffix_001',
      esperanto: '-id-',
      english: 'offspring',
      pronunciation: 'ID',
      definition: 'Offspring, descendant, young',
      examples: ['bovido (calf)', 'hundido (puppy)', 'katido (kitten)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'in_suffix_001',
      esperanto: '-in-',
      english: 'female',
      pronunciation: 'IN',
      definition: 'Female, feminine',
      examples: ['patrino (mother)', 'regino (queen)', 'heroino (heroine)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ing_suffix_001',
      esperanto: '-ing-',
      english: 'holder',
      pronunciation: 'ING',
      definition: 'Holder, socket, container',
      examples: ['kandeling (candlestick)', 'glavingo (scabbard)', 'plumingo (pen holder)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'obl_suffix_001',
      esperanto: '-obl-',
      english: 'multiple',
      pronunciation: 'OBL',
      definition: 'Multiple, fold, times',
      examples: ['duobla (double)', 'triobla (triple)', 'dekobla (tenfold)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'on_suffix_001',
      esperanto: '-on-',
      english: 'fraction',
      pronunciation: 'ON',
      definition: 'Fraction, part of',
      examples: ['duono (half)', 'triono (third)', 'kvarono (quarter)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'op_suffix_001',
      esperanto: '-op-',
      english: 'group',
      pronunciation: 'OP',
      definition: 'Group, collective number',
      examples: ['duopo (pair)', 'triopo (trio)', 'kvaropo (quartet)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ul_suffix_001',
      esperanto: '-ul-',
      english: 'person characterized by',
      pronunciation: 'UL',
      definition: 'Person characterized by quality',
      examples: ['maljunulo (old person)', 'riĉulo (rich person)', 'belulo (handsome person)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'um_suffix_001',
      esperanto: '-um-',
      english: 'indefinite relation',
      pronunciation: 'UM',
      definition: 'Indefinite or vague relation',
      examples: ['kolumo (collar)', 'plenumi (fulfill)', 'malvarmumo (cold)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'uj_suffix_001',
      esperanto: '-uj-',
      english: 'container',
      pronunciation: 'UJ',
      definition: 'Container, holder, country',
      examples: ['inkujo (inkwell)', 'monujo (wallet)', 'Polujo (Poland)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'nj_suffix_001',
      esperanto: '-nj-',
      english: 'pet name',
      pronunciation: 'NJ',
      definition: 'Pet name, endearment (feminine)',
      examples: ['panjo (mommy)', 'avinjo (granny)', 'fratinjo (little sister)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'cj_suffix_001',
      esperanto: '-ĉj-',
      english: 'pet name masculine',
      pronunciation: 'ĈJ',
      definition: 'Pet name, endearment (masculine)',
      examples: ['paĉjo (daddy)', 'aviĉjo (grandpa)', 'fraĉjo (little brother)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'foj_suffix_001',
      esperanto: '-foj-',
      english: 'times',
      pronunciation: 'FOJ',
      definition: 'Times, occasions, instances',
      examples: ['unufoje (once)', 'dufoje (twice)', 'multfoje (many times)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'temp_suffix_001',
      esperanto: '-temp-',
      english: 'time period',
      pronunciation: 'TEMP',
      definition: 'Time period, duration',
      examples: ['printempe (in spring)', 'matene (in the morning)', 'hieraŭ (yesterday)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'lok_suffix_001',
      esperanto: '-lok-',
      english: 'place',
      pronunciation: 'LOK',
      definition: 'Place, location, position',
      examples: ['hejme (at home)', 'urbe (in the city)', 'ekstere (outside)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'manier_suffix_001',
      esperanto: '-manier-',
      english: 'manner',
      pronunciation: 'ma-ni-ER',
      definition: 'Manner, way, method',
      examples: ['bele (beautifully)', 'rapide (quickly)', 'silente (silently)'],
      category: 'Functional Suffixes',
      audioUrl: '',
      difficulty: 2,
    ),
  ];

  // 获取所有第八批次词汇
  static List<Word> getAllWords() {
    return [
      ..._compoundRoots,
      ..._scientificRoots,
      ..._functionalSuffixes,
    ];
  }

  // 获取复合词根
  static List<Word> getCompoundRoots() => _compoundRoots;

  // 获取科学技术词根
  static List<Word> getScientificRoots() => _scientificRoots;

  // 获取功能性后缀
  static List<Word> getFunctionalSuffixes() => _functionalSuffixes;

  // 获取所有类别
  static List<String> getAllCategories() {
    return getAllWords().map((word) => word.category).toSet().toList()..sort();
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 根据难度获取词汇
  static List<Word> getWordsByDifficulty(int difficulty) {
    return getAllWords().where((word) => word.difficulty == difficulty).toList();
  }
} 